#include <sys/socket.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
int sd;                           /* дескриптор сокета */
int optval;                       /* значення опції */
int optlen;                       /* довжина optval */

int new_buffsize = 8192;          /* новий розмір буфера */

/* створення сокета */
sd = socket(AF_INET, SOCK_STREAM, 0) ;

/* зчитування довжини буфера TCP */
optlen = sizeof(optval);

getsockopt(sd, SOL_SOCKET, SO_SNDBUF, optval, optlen);
printf("Size of send buffer %d\n", optval);

getsockopt(sd, SOL_SOCKET, SO_RCVBUF, &optval, &optlen);
printf("Sire of recv buffer %d\n", optval);

/* зміна довжини буфера */
setsockopt(sd, SOL_SOCKET, SO_RCVBUF, &new_buffsize,sizeof(new_buffsize));
setsockopt(sd, SOL_SOCKET, SO_SNDBUF, &new_buffsize,sizeof(new_buffsize));

/* вивід зміненої інформації */
getsockopt(sd, SOL_SOCKET, SO_SNDBUF, &optval, &optlen);
printf("New size of send buffer %d\n", optval);
getsockopt(sd, SOL_SOCKET, SO_RCVBUF, &optval, &optlen);
printf("New size of recv buffer %d\n", optval);
}
